var stompClient = null;
$(function(){
    setConnect(false);
});

function setConnect(connected){
    $("#connect").attr({disabled:connected});
    $("#disconnect").attr({disabled:!connected});
}
function connect() {
    // 建立连接对象（还未发起连接）
    var socket = new SockJS('/WebSocketEndpoint');
    // 获取 STOMP 子协议的客户端对象
    stompClient = Stomp.over(socket);
    // 打印stomp输出信息
    stompClient.debug = function(str) {
        console.log(str + "\n");
    };
    // 向服务器发起websocket连接并发送CONNECT帧
    stompClient.connect({}
       , function(frame) {
           // 连接成功时（服务器响应 CONNECTED 帧）的回调方法
           showLog("链接成功！");
           setConnect(true);
           //连接成功后订阅/topic/getResponse目标发送的消息，该地址在Controller中用@SendTo指定
           stompClient.subscribe('/WebSocketBroker/d01/getResponse', function(response) {
               // console.log(response);
               showResponse(JSON.parse(response.body).message);
           });
       }
       , function(frame) {
           // 连接失败时（服务器响应 ERROR 帧）的回调方法
           showLog("链接失败！");
           if (stompClient != null) {
               stompClient.disconnect();
           }
           setConnect(false);
       }
    );
}

function disconnect() {
    showLog("断开链接！");
    if (stompClient != null) {
        stompClient.disconnect();
    }
    setConnect(false);
}
function getServerTime() {
    var message = "The server time is : ";
    // 发送消息到服务端，/getServerTime地址是由Controller中的@MessageMapping指定
    stompClient.send("/WebSocketDemo/d01/getServerTime", {}, JSON.stringify({
        'message' : message
    }));
}


function showResponse(message) {
    $("#showServerTime").prepend("<br/>").prepend(message);
}
function showLog(message) {
    console.log(message);
    $("#showLog").prepend("<br/>").prepend(message);
}